<?php
	require_once PATH_OBJECT.'dataObject.php';
	
class dataObject_justificatif extends dataObject
{
    
	/* @desc    Identifiant du justificatif
     * @var     int
     */
    public $_IDENTIFIANT_JUSTIFICATIF  = 0;

	/* @desc    type du justificatif
     * @var     char(5)
     */
    public $_TYPE_JUSTIFICATIF  = '';

	/* @desc    valeur du justificatif
     * @var     varchar(50)
     */
    public $_VALEUR_JUSTIFICATIF  = '';

	/* @desc    Identifiant contrat associé au justificatif
     * @var     int
     */
    public $_IDENTIFIANT_CONTRAT  = 0;

	/* @desc    Identifiant personn associé au justificatif
     * @var     int
     */
    public $_IDENTIFIANT_PERSONNE  = 0;

	/* @desc    Identifiant évnement associé au justificatif
     * @var     int
     */
    public $_IDENTIFIANT_EVENEMENT  = 0;

	/* @desc    Identifiant sinistre associé au justificatif
     * @var     int
     */
    public $_IDENTIFIANT_SINISTRE  = 0;
    
    
  public function __construct( $iId=0 )
    {
       parent::__construct();

       if ( $iId != 0 )
       {
            $sQuery = "SELECT   *   /*+ dataObject_justificatif::__construct */  
                       FROM justificatif 
            		   WHERE Identifiant_justificatif = ".$iId;
            
            $aRows =  self::$_oConnexion->query($sQuery);
	  		$aRow = $aRows[0];
            $this->_IDENTIFIANT_JUSTIFICATIF	= $iId;
			$this->_TYPE_JUSTIFICATIF  			= $aRow["Type_justificatif"];
			$this->_VALEUR_JUSTIFICATIF  		= $aRow["Valeur_justificatif"];
			$this->_IDENTIFIANT_CONTRAT  		= $aRow["Identifiant_contrat"];
			$this->_IDENTIFIANT_PERSONNE  		= $aRow["Identifiant_personne"];
			$this->_IDENTIFIANT_EVENEMENT  		= $aRow["Identifiant_evenement"];
			$this->_IDENTIFIANT_SINISTRE  		= $aRow["Identifiant_sinistre"];
            
       }
    }
    /**
     * récupere la table xxxx selon le(s) criter(s) précisés ou pas 
	 */
    function justificatif_select( $sCritere = null )
    {
        $aRow = false;
    	$sQuery = "SELECT   *    
                   FROM justificatif 
            	   WHERE 1=1 
            	   {$sCritere}";
        $aRow =  self::$_oConnexion->query($sQuery);

        return $aRow;
    }
    
    
	public function justificatif_getList()
    {
        $aRow = false;
    	$sCritere = "" ;
        $aRow =  $this->justificatif_select ($sCritere);
        
        return $aRow;
    }
    
  //pieces manquantes au regard 
  //des justificatifs necessaires et des justificatifs fournis
  public function justificatif_getListPieceManquante($idSinistre) 
  {
  	$aRow=false;
  	//on part de idsinistre pour remonter dans la table justificatif
  	//on recupere les conditions indemnisation de type J associées au contrat récupéré dans la table justificatif
  	//(en passant par Id offre ou Id garantie du produit
  	//on enleve les conditions indemnisation dont le code = type justificatif
  	//pour lister les conditions indemnisation correspondant aux pieces manquantes
  	$sQuery="SELECT distinct Code_condition_indemnisation, 
		  	Libelle_condition_indemnisation, Valeur_condition_indemnisation
		  	FROM conditionindemnisation ci , sinistres sin, garantiesouscrite garsous,
		  		garantie gar, produit p
			WHERE Type_condition_indemnisation ='J'
			AND sin.Identifiant_sinistre= '".$idSinistre."'
			AND sin.Identifiant_contrat= garsous.Identifiant_contrat 
			AND garsous.Identifiant_garantie = gar.Identifiant_garantie
		    AND gar.Identifiant_produit = p.Identifiant_produit
		   	AND (ci.Identifiant_offre = p.Identifiant_offre OR ci.Identifiant_offre is NULL) 
			AND ((ci.Identifiant_garantie = garsous.Identifiant_garantie AND SUBSTRING(Code_garantie,1,1) = Type_sinistre)
				OR ci.Identifiant_garantie is NULL) 
		  	AND NOT EXISTS (SELECT identifiant_justificatif 
			 				FROM justificatif 
			 				WHERE ci.Code_condition_indemnisation = Type_justificatif
			 				AND Identifiant_sinistre = '".$idSinistre."'
			 				)"	;

  	//AND if(SUBSTRING(Code_garantie,1,1)='D', 'CD', 'CIN' ) = Code_condition_indemnisation
  	 $aRow =  self::$_oConnexion->query($sQuery);
  	
  	return $aRow;
  }
  
  
public function justificatif_insert()
    {
    	$bId = false;
    	$sQuery = "INSERT INTO justificatif (
				Type_justificatif ,
				Valeur_justificatif ,
				Identifiant_contrat ,
				Identifiant_personne ,
				Identifiant_evenement ,
				Identifiant_sinistre
    			) values (
				'$this->_TYPE_JUSTIFICATIF', 
				'$this->_VALEUR_JUSTIFICATIF' ,
				$this->_IDENTIFIANT_CONTRAT ,
				$this->_IDENTIFIANT_PERSONNE ,
				".self::$_oConnexion->escape_null($this->_IDENTIFIANT_EVENEMENT)." ,
				".self::$_oConnexion->escape_null($this->_IDENTIFIANT_SINISTRE)." 
    			)";
    	
        	$bId = self::$_oConnexion->execute($sQuery);
    	return $bId;
    }
    
    public function justificatif_update()
    {
    	$bRetour = false;
    	$sIdentifiantEvent = (($this->_IDENTIFIANT_EVENEMENT==0) || ($this->_IDENTIFIANT_EVENEMENT=='0')) ? 'NULL' : $this->_IDENTIFIANT_EVENEMENT ;
    	$sIdentifiantSinistre   = (($this->_IDENTIFIANT_SINISTRE==0) || ($this->_IDENTIFIANT_SINISTRE=='0')) ? 'NULL' : $this->_IDENTIFIANT_SINISTRE;
    	
    	$sQuery = "UPDATE justificatif SET 
				Type_justificatif 				= '$this->_TYPE_JUSTIFICATIF', 
				Valeur_justificatif 			= '$this->_VALEUR_JUSTIFICATIF',
				Identifiant_contrat 			= '$this->_IDENTIFIANT_CONTRAT',
				Identifiant_personne 			= '$this->_IDENTIFIANT_PERSONNE', 
				Identifiant_evenement 			= ".$sIdentifiantEvent." ,
				Identifiant_sinistre 			= ".$sIdentifiantSinistre." 
	    		WHERE Identifiant_justificatif 	= '".$this->_IDENTIFIANT_JUSTIFICATIF."' ";

        $bRetour = self::$_oConnexion->execute($sQuery);
    	
    	return $bRetour;
    }
    
	function justificatif_getListForPersonne( $idPersonne )
    {
        $aRow = false;
    	$sQuery = "SELECT *    
                   FROM justificatif 
            	   WHERE Identifiant_personne = '".$idPersonne."'";
        $aRow =  self::$_oConnexion->query($sQuery);

        return $aRow;
    }
    
	function justificatif_getListForContrat( $idContrat )
    {
        $aRow = false;
    	$sQuery = "SELECT *    
                   FROM justificatif 
            	   WHERE Identifiant_contrat = '".$idContrat."'";
        $aRow =  self::$_oConnexion->query($sQuery);

        return $aRow;
    }
}
?>